if exists (select 1 from sysobjects where name = 'set_plandienstserie' and type = 'P')
begin
   drop procedure set_plandienstserie
   print 'Procedure: set_plandienstserie deleted ...'
end
go
create procedure set_plandienstserie(
    @planid     int
)
as
begin
  set nocount on

  declare @datumvon   datetime
  declare @datumbis   datetime

  create table #dienstserie
  (
     prsid         int,
     dienstid      int,
     abteilungid   int,
     tag           int,
     typ           int,
     von           datetime,
     bis           datetime
  )
  
  select @datumvon = Von,
         @datumbis = Bis
    from ArbeitsPlan
   where PlanID = @planid

  insert #dienstserie
  select prsid = ds.PrsID,
         dienstid = ds.DienstID,
         abteilungid = ds.AbteilungID,
         tag = ds.Tag,
         typ = ds.Typ,
         von = ds.Von, 
         bis = ds.bis 
   from DienstSerie ds
  where ((Von <= @datumvon and bis >= @datumbis)          -- bis
       or (Von >= @datumvon and bis >= @datumbis and Von <= @datumbis)
       or (Von <= @datumvon and bis >= @datumbis)
			           										-- von
       or (Von <= @datumvon and bis <= @datumbis and bis >= @datumvon)
       or (Von >= @datumvon and bis <= @datumbis))
--    and ds.abteilungid = @abteilungid
--    and ds.prsid = @prsid

end
go
print 'Procedure: set_plandienstserie done ...'
go

grant exec on set_plandienstserie to prsadmins with grant option
go
grant exec on set_plandienstserie to prsusers
go

